home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 June: Technology Seed / June 98 ADC Seed.toast / Mac OS 8.5a8 Pseudo SDK / interfaces-and-libraries / AIncludes / ATSUnicode.a < prev    next >
Encoding:
Text File  |  1998-06-19  |  35.1 KB  |  995 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        ATSUnicode.a
  3. ;
  4. ;    Contains:    Public interfaces for Apple Type Services for Unicode Imaging
  5. ;
  6. ;    Version:    Technology:    Allegro
  7. ;                Release:    Allego Seed, Use with 3.1 Universal Interfaces
  8. ;
  9. ;    Copyright:    © 1997-1998 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__ATSUNICODE__') = 'UNDEFINED' THEN
  19. __ATSUNICODE__ SET 1
  20.  
  21.     IF &TYPE('__ATSLAYOUTTYPES__') = 'UNDEFINED' THEN
  22.     include 'ATSLayoutTypes.a'
  23.     ENDIF
  24.     IF &TYPE('__SFNTLAYOUTTYPES__') = 'UNDEFINED' THEN
  25.     include 'SFNTLayoutTypes.a'
  26.     ENDIF
  27.  
  28.     IF &TYPE('__MACTYPES__') = 'UNDEFINED' THEN
  29.     include 'MacTypes.a'
  30.     ENDIF
  31.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  32.     include 'Quickdraw.a'
  33.     ENDIF
  34.     IF &TYPE('__TEXTCOMMON__') = 'UNDEFINED' THEN
  35.     include 'TextCommon.a'
  36.     ENDIF
  37.  
  38. ; ***********
  39. ;     Types    
  40. ; ***********
  41. ; typedef UniCharArrayPtr *                UniCharArrayHandle
  42.  
  43.  
  44. ;      UniCharArrayHandle is a handle type to correspond to 
  45. ;      UniCharArrayPtr, defined in Unicode.h.  It refers 
  46. ;      to a handle, interpreted as a pointer to an array 
  47. ;      of UniChar's (UInt16's).
  48.  
  49.  
  50. ; typedef UInt32                         UniCharArrayOffset
  51.  
  52.  
  53. ;      UniCharArrayOffset is used to indicate an offset 
  54. ;      into an array of UniChar's (UInt16's).  
  55.  
  56.  
  57. ; typedef Fixed                         ATSUTextMeasurement
  58.  
  59.  
  60. ;      ATSUTextMeasurement is exactly what its name implies:  
  61. ;      a measurement of the size in some direction of text:  
  62. ;      height, width, ascent, descent, and so on.  
  63.  
  64.  
  65. ; typedef UInt32                         ATSUFontID
  66.  
  67.  
  68. ;      ATSUFontID indicates a particular font family and face.  
  69. ;      ATSUFontID's are not guaranteed to remain constant across 
  70. ;      reboots.  Clients should use the font's unique name to 
  71. ;      get a font token to store in documents which is 
  72. ;      guaranteed to remain constant across reboots. 
  73.  
  74.  
  75. ; typedef UInt16                         ATSUFontFeatureType
  76.  
  77. ; typedef UInt16                         ATSUFontFeatureSelector
  78.  
  79.  
  80. ;      ATSUFontFeatureType and ATSUFontFeatureSelector are used 
  81. ;      to identify font features.  
  82.  
  83.  
  84. ; typedef FourCharCode                     ATSUFontVariationAxis
  85.  
  86. ; typedef Fixed                         ATSUFontVariationValue
  87.  
  88.  
  89. ;      ATSUFontVariationAxis and ATSUFontVariationValue are used 
  90. ;      in connection with font variations.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96. ;      ATSUTextLayout is used to store the attribute information 
  97. ;      associated with a contiguous block of UniChar's (UInt16's) 
  98. ;      in memory.  It's typed to be an opaque structure.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104. ;      ATSUStyle is used to store a set of individual attributes, 
  105. ;      font features, and font variations.  It's typed to be 
  106. ;      an opaque structure.  
  107.  
  108.  
  109. ; typedef FourCharCode                     ATSUAttributeTag
  110.  
  111.  
  112. ;      ATSUAttributeTag is used to indicate the particular type 
  113. ;      of attribute under consideration:  font, size, color, 
  114. ;      and so on.  
  115. ;      Each style run may have at most one attribute with a 
  116. ;      given ATSUAttributeTag (i.e., a style run can't have 
  117. ;      more than one font or size) but may have none.  
  118.  
  119.  
  120. ; typedef void *                        ATSUAttributeValuePtr
  121.  
  122.  
  123. ;      ATSUAttributeValuePtr is used to provide generic access 
  124. ;      to storage of attribute values, which vary in size.
  125.  
  126.  
  127. ATSUAttributeInfo        RECORD 0
  128. fTag                     ds.l    1                ; offset: $0 (0)
  129. fValueSize                 ds.l    1                ; offset: $4 (4)
  130. sizeof                     EQU *                    ; size:   $8 (8)
  131.                         ENDR
  132.  
  133. ;      ATSUAttributeInfo is used to provide a tag/size pairing.  
  134. ;      This makes it possible to provide the client information   
  135. ;      about all the attributes for a given range of text.  This   
  136. ;      structure is only used to return to the client information   
  137. ;      about a complete set of attributes.  An array of   
  138. ;      ATSUAttributeInfos is passed as a parameter so that the   
  139. ;      client can find out what attributes are set and what their   
  140. ;      individual sizes are; with that information, they can then   
  141. ;      query about the values of the attributes they're interested   
  142. ;      in.  Because arrays of ATSUAttributeInfos are used as parameters   
  143. ;      to functions, they have to be of a fixed size, hence the   
  144. ;      value is not included in the structure.  
  145.  
  146.  
  147. ATSUCaret                RECORD 0
  148. fX                         ds.l    1                ; offset: $0 (0)
  149. fY                         ds.l    1                ; offset: $4 (4)
  150. fDeltaX                     ds.l    1                ; offset: $8 (8)
  151. fDeltaY                     ds.l    1                ; offset: $C (12)
  152. sizeof                     EQU *                    ; size:   $10 (16)
  153.                         ENDR
  154.  
  155. ;      ATSUCaret is to contain complete information regarding a caret:  
  156. ;      its x- and y-positions (relative to the line's origin), and 
  157. ;      a delta-x and delta-y indicating the caret's slope.  If the 
  158. ;      caret is vertical, fDeltaX is 0; if it's horizontal, fDeltaY 
  159. ;      is 0.  
  160.  
  161.  
  162. ; typedef int                             ATSUCursorMovementType
  163.  
  164.  
  165. ;      ATSUCursorMovementType currently can take three values 
  166. ;      (kATSUByCharacter, kATSUByCluster, and kATSUByWord) 
  167. ;      and is used to indicate how much to move the cursor.  
  168.  
  169.  
  170. ; typedef UInt16                         ATSUVerticalCharacterType
  171.  
  172.  
  173. ;      ATSUVerticalCharacterType currently can take two values 
  174. ;      (kATSUStronglyVertical, and kATSUStronglyHorizontal) and 
  175. ;      is used to indicate whether text is to be laid out as 
  176. ;      vertical glyphs or horizontal glyphs.  
  177.  
  178.  
  179. ; typedef UInt16                         ATSUStyleComparison
  180.  
  181.  
  182. ;      ATSUStyleComparison is an enumeration with four values 
  183. ;      (kATUStyleUnequal, ATSUStyleContains, kATSUStyleEquals, 
  184. ;      and kATSUStyleContainedBy), and is used by ATSUCompareStyles() 
  185. ;      to indicate if the first style parameter contains as a 
  186. ;      proper subset, is equal to, or is contained by the second 
  187. ;      style parameter.
  188.  
  189.  
  190. ; ***************************************************
  191. ;     Gestalt selectors                                
  192. ;         Move into Gestalt.i when they're stable!!!!    
  193. ; ***************************************************
  194.  
  195. gestaltATSUVersion                EQU        'uisv'
  196. gestaltATSUFeatures                EQU        'uisf'
  197.  
  198. gestaltOriginalATSUVersion        EQU        $00010000
  199. ; ***************
  200. ;     Error codes    
  201. ; ***************
  202.  
  203. kATSUInvalidTextLayoutErr        EQU        -8790                ;    An attempt was made to use a ATSUTextLayout 
  204.                                                             ;    which hadn't been initialized or is otherwise 
  205.                                                             ;    in an invalid state. 
  206. kATSUInvalidStyleErr            EQU        -8791                ;    An attempt was made to use a ATSUStyle which  
  207.                                                             ;    hadn't been properly allocated or is otherwise  
  208.                                                             ;    in an invalid state.  
  209. kATSUInvalidTextRangeErr        EQU        -8792                ;    An attempt was made to extract information   
  210.                                                             ;    information from or perform an operation on a   
  211.                                                             ;    ATSUTextLayout for a range of text not covered   
  212.                                                             ;    by the ATSUTextLayout.  
  213. kATSUFontsMatched                EQU        -8793                ;    This is not an error code but is returned by    
  214.                                                             ;    ATSUMatchFontsToText() when changes need to    
  215.                                                             ;    be made to the fonts associated with the text.  
  216. kATSUFontsNotMatched            EQU        -8794                ;    This value is returned by ATSUMatchFontsToText()    
  217.                                                             ;    when the text contains Unicode characters which    
  218.                                                             ;    cannot be represented by any installed font.  
  219. kATSUNoCorrespondingFontErr        EQU        -8795                ;    This value is retrned by font ID conversion 
  220.                                                             ;    routines ATSUFONDtoFontID() and ATSUFontIDtoFOND() 
  221.                                                             ;    to indicate that the input font ID is valid but 
  222.                                                             ;    there is no conversion possible.  For example, 
  223.                                                             ;    data-fork fonts can only be used with ATSUI not 
  224.                                                             ;    the FontManager, and so converting an ATSUIFontID 
  225.                                                             ;    for such a font will fail.   
  226. kATSUInvalidFontErr                EQU        -8796                ;    Used when an attempt was made to use an invalid font ID.
  227. kATSUInvalidAttributeValueErr    EQU        -8797                ;    Used when an attempt was made to use an attribute with 
  228.                                                             ;    a bad or undefined value.  
  229. kATSUInvalidAttributeSizeErr    EQU        -8798                ;    Used when an attempt was made to use an attribute with a 
  230.                                                             ;    bad size.  
  231. kATSUInvalidCacheErr            EQU        -8799                ;    Used when an attempt was made to read in style data 
  232.                                                             ;    from an invalid cache.  Either the format of the 
  233.                                                             ;    cached data doesn't match that used by Apple Type 
  234.                                                             ;    Services for Unicode™ Imaging, or the cached data 
  235.                                                             ;    is corrupt.  
  236. kATSUNotSetErr                    EQU        -8800                ;    Used when the client attempts to retrieve an attribute, 
  237.                                                             ;    font feature, or font variation from a style when it 
  238.                                                             ;    hadn't been set.  In such a case, the default value will
  239.                                                             ;    be returned for the attribute's value.
  240. kATSUNoStyleRunsAssignedErr        EQU        -8801                ; Used when an attempt was made to measure, highlight or draw
  241.                                                             ; a ATSUTextLayout object that has no styleRuns associated with it.
  242.                                                             ; Used when QuickDraw Text incounteres an error rendering or measuring
  243. kATSUQuickDrawTextErr            EQU        -8802                ; a line of text.
  244. ; ****************************
  245. ;     Run Style Attribute tags 
  246. ; ****************************
  247.  
  248.                                                             ; QuickDraw compatibility tags 
  249. kATSUQDBoldfaceTag                EQU        0                    ;    Type:            Boolean    
  250.                                                             ;    Default value:    false
  251. kATSUQDItalicTag                EQU        1                    ;    Type:            Boolean        
  252.                                                             ;    Default value:    false
  253. kATSUQDUnderlineTag                EQU        2                    ;    Type:            Boolean    
  254.                                                             ;    Default value:    false
  255. kATSUQDCondensedTag                EQU        3                    ;    Type:            Boolean    
  256.                                                             ;    Default value:    false
  257. kATSUQDExtendedTag                EQU        4                    ;    Type:            Boolean    
  258.                                                             ;    Default value:    false
  259.                                                             ; Common run tags 
  260. kATSUFontTag                    EQU        5                    ;    Type:            ATSUFontID    
  261.                                                             ;    Default value:    GetScriptVariable( smSystemScript, smScriptAppFond )
  262. kATSUSizeTag                    EQU        6                    ;    Type:            Fixed    
  263.                                                             ;    Default value:    GetScriptVariable( smSystemScript, smScriptAppFondSize )    
  264. kATSUColorTag                    EQU        7                    ;    Type:            RGBColor    
  265.                                                             ;    Default value:    (0, 0, 0)
  266. kATSULanguageTag                EQU        8                    ;    Type:            RegionCode    
  267.                                                             ;    Default value:    GetScriptVariable( smSystemScript, smScriptLang )
  268.                                                             ;    Less common run tags 
  269. kATSUVerticalCharacterTag        EQU        9                    ;    Type:            ATSUVerticalCharacterType    
  270.                                                             ;    Default value:    kATSUStronglyHorizontal
  271. kATSUImposeWidthTag                EQU        10                    ;    Type:            ATSUTextMeasurement
  272.                                                             ;    Default value:    0
  273. kATSUBeforeWithStreamShiftTag    EQU        11                    ;    Type:            Fixed
  274.                                                             ;    Default value:    0
  275. kATSUAfterWithStreamShiftTag    EQU        12                    ;    Type:            Fixed
  276.                                                             ;    Default value:    0
  277. kATSUCrossStreamShiftTag        EQU        13                    ;    Type:            Fixed
  278.                                                             ;    Default value:    0
  279. kATSUTrackingTag                EQU        14                    ;    Type:            Fixed
  280.                                                             ;    Default value:    0
  281. kATSUHangingInhibitFactorTag    EQU        15                    ;    Type:            Fract between 0 and 1
  282.                                                             ;    Default value:    0
  283. kATSUKerningInhibitFactorTag    EQU        16                    ;    Type:            Fract between 0 and 1
  284.                                                             ;    Default value:    0
  285. kATSUDecompositionFactorTag        EQU        17                    ;    Type:            Fixed (-1.0 -> 1.0)
  286.                                                             ;    Default value:    0
  287. kATSUBaselineClassTag            EQU        18                    ;    Type:            BslnBaselineClass  (see SFNTLayoutTypes.h)
  288.                                                             ;    Default value:    kBSLNNoBaselineOverride
  289. kATSUPriorityJustOverrideTag    EQU        19                    ;    Type:            ATSJustPriorityWidthDeltaOverrides (see ATSLayoutTypes.h)
  290.                                                             ;    Default value:    all zeros
  291. kATSUNoLigatureSplitTag            EQU        20                    ;    Type:            Boolean
  292.                                                             ;    Default value:    false - split ligatures during justification process if needed.
  293. kATSUNoCaretAngleTag            EQU        21                    ;    Type:            Boolean
  294.                                                             ;    Default value:    false - use the character's angularity to determine its boundaries
  295. kATSUSuppressCrossKerningTag    EQU        22                    ;    Type:            Boolean
  296.                                                             ;    Default value:    false - do not suppress automatic cross kerning (defined by font)
  297. kATSUNoOpticalAlignmentTag        EQU        23                    ;    Type:            Boolean
  298.                                                             ;    Default value:    false - do not suppress character's automatic optical positional alignment
  299. kATSUForceHangingTag            EQU        24                    ;    Type:            Boolean
  300.                                                             ;    Default value:    false - do not force the character's to hang beyond the line boundaries
  301. kATSUNoSpecialJustificationTag    EQU        25                    ;    Type:            Boolean
  302. ;     Default value:    false - perform post-compensation justification if needed
  303. ; *******************************
  304. ;     Line Control Attribute tags 
  305. ; *******************************
  306.  
  307. kATSULineWidthTag                EQU        0                    ;    Type:            ATSUTextMeasurement
  308.                                                             ;    Default value:    0
  309. kATSULineRotationTag            EQU        1                    ;    Type:            Fixed (fixed  value in degrees in right-handed coordinate system)
  310.                                                             ;    Default value:    0
  311. kATSULineDirectionTag            EQU        2                    ;    Type:            Boolean; values 0 or 1 (see below for value identities)
  312.                                                             ;    Default value:    kATSULeftToRightBaseDirection
  313. kATSULineJustificationFactorTag    EQU        3                    ;    Type:            Fract between 0 and 1
  314.                                                             ;    Default value:    kATSUNoJustification
  315. kATSULineFlushFactorTag            EQU        4                    ;    Type:            Fract between 0 and 1 
  316.                                                             ;    Default value:    kATSUStartAlignment
  317. kATSULineBaselineValuesTag        EQU        5                    ;    Type:            BslnBaselineRecord
  318.                                                             ;    Default value:    All zeros.  Calculated from other style attributes (e.g., font and point size)
  319. kATSULineLayoutOptionsTag        EQU        6                    ;    Type:            UInt32
  320. ;     Default value:    kATSUNoLayoutOptions - other options listed in ATSLayoutTypes.h
  321. ; *******************************
  322. ;     Enumerations and constants    
  323. ; *******************************
  324. ;  Cursor movement 
  325.  
  326. kATSUByCharacter                EQU        0
  327. kATSUByCluster                    EQU        1
  328. kATSUByWord                        EQU        2
  329. ;  Vertical text types 
  330.  
  331. kATSUStronglyHorizontal            EQU        0
  332. kATSUStronglyVertical            EQU        1
  333. ;  Line direction types (used for kATSULineDirectionTag values) 
  334.  
  335. kATSULeftToRightBaseDirection    EQU        0                    ;    Impose left-to-right or top-to-bottom dominant direction 
  336. kATSURightToLeftBaseDirection    EQU        1                    ;    Impose right-to-left or bottom-to-top dominant direction 
  337. ;  Style comparison types 
  338.  
  339. kATSUStyleUnequal                EQU        0
  340. kATSUStyleContains                EQU        1
  341. kATSUStyleEquals                EQU        2
  342. kATSUStyleContainedBy            EQU        3
  343. ;  LineFlushFactor convenience defined values 
  344.  
  345. kATSUStartAlignment                EQU        $00000000
  346. kATSUEndAlignment                EQU        $40000000
  347. kATSUCenterAlignment            EQU        $20000000
  348. ;  LineJustificationFactor convenience defined values 
  349.  
  350. kATSUNoJustification            EQU        $00000000
  351. kATSUFullJustification            EQU        $40000000
  352. ;  Other constants    
  353.  
  354. kATSUInvalidFontID                EQU        0
  355.  
  356.  
  357. kATSUUseGrafPortPenLoc            EQU        $FFFFFFFF
  358. kATSUClearAll                    EQU        $FFFFFFFF
  359.  
  360.  
  361. kATSUFromTextBeginning            EQU        $FFFFFFFF
  362. kATSUToTextEnd                    EQU        $FFFFFFFF
  363.  
  364. ; ***************
  365. ;     Functions    
  366. ; ***************
  367.  
  368. ;     Basic style functions    
  369. ;
  370. ; extern OSStatus ATSUCreateStyle(ATSUStyle *oStyle)
  371. ;
  372.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  373.         IMPORT_CFM_FUNCTION ATSUCreateStyle
  374.     ENDIF
  375.  
  376. ;
  377. ; extern OSStatus ATSUCreateAndCopyStyle(ATSUStyle iStyle, ATSUStyle *oStyle)
  378. ;
  379.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  380.         IMPORT_CFM_FUNCTION ATSUCreateAndCopyStyle
  381.     ENDIF
  382.  
  383. ;
  384. ; extern OSStatus ATSUDisposeStyle(ATSUStyle iStyle)
  385. ;
  386.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  387.         IMPORT_CFM_FUNCTION ATSUDisposeStyle
  388.     ENDIF
  389.  
  390. ;
  391. ; extern OSStatus ATSUSetStyleRefCon(ATSUStyle iStyle, UInt32 iRefCon)
  392. ;
  393.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  394.         IMPORT_CFM_FUNCTION ATSUSetStyleRefCon
  395.     ENDIF
  396.  
  397. ;
  398. ; extern OSStatus ATSUGetStyleRefCon(ATSUStyle iStyle, UInt32 *oRefCon)
  399. ;
  400.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  401.         IMPORT_CFM_FUNCTION ATSUGetStyleRefCon
  402.     ENDIF
  403.  
  404.  
  405. ;     Style comparison         
  406. ;
  407. ; extern OSStatus ATSUCompareStyles(ATSUStyle iFirstStyle, ATSUStyle iSecondStyle, ATSUStyleComparison *oComparison)
  408. ;
  409.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  410.         IMPORT_CFM_FUNCTION ATSUCompareStyles
  411.     ENDIF
  412.  
  413. ;     Attribute manipulations    
  414. ;
  415. ; extern OSStatus ATSUCopyAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
  416. ;
  417.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  418.         IMPORT_CFM_FUNCTION ATSUCopyAttributes
  419.     ENDIF
  420.  
  421. ;
  422. ; extern OSStatus ATSUOverwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
  423. ;
  424.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  425.         IMPORT_CFM_FUNCTION ATSUOverwriteAttributes
  426.     ENDIF
  427.  
  428. ;
  429. ; extern OSStatus ATSUUnderwriteAttributes(ATSUStyle iSourceStyle, ATSUStyle iDestinationStyle)
  430. ;
  431.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  432.         IMPORT_CFM_FUNCTION ATSUUnderwriteAttributes
  433.     ENDIF
  434.  
  435. ;     Empty styles    
  436. ;
  437. ; extern OSStatus ATSUClearStyle(ATSUStyle iStyle)
  438. ;
  439.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  440.         IMPORT_CFM_FUNCTION ATSUClearStyle
  441.     ENDIF
  442.  
  443. ;
  444. ; extern OSStatus ATSUStyleIsEmpty(ATSUStyle iStyle, Boolean *isClear)
  445. ;
  446.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  447.         IMPORT_CFM_FUNCTION ATSUStyleIsEmpty
  448.     ENDIF
  449.  
  450. ;     Clipboard support    
  451. ;
  452. ; extern OSStatus ATSUCopyToHandle(ATSUStyle iStyle, Handle oStyleHandle)
  453. ;
  454.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  455.         IMPORT_CFM_FUNCTION ATSUCopyToHandle
  456.     ENDIF
  457.  
  458. ;
  459. ; extern OSStatus ATSUPasteFromHandle(ATSUStyle iStyle, Handle iStyleHandle)
  460. ;
  461.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  462.         IMPORT_CFM_FUNCTION ATSUPasteFromHandle
  463.     ENDIF
  464.  
  465. ;     Get and set attributes 
  466. ;
  467. ; extern OSStatus ATSUCalculateBaselineDeltas(ATSUStyle iStyle, BslnBaselineClass iBaselineClass, BslnBaselineRecord oBaselineDeltas)
  468. ;
  469.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  470.         IMPORT_CFM_FUNCTION ATSUCalculateBaselineDeltas
  471.     ENDIF
  472.  
  473. ;
  474. ; extern OSStatus ATSUSetAttributes(ATSUStyle iStyle, ItemCount iAttributeCount, ATSUAttributeTag iTag[2147483647], ByteCount iValueSize[2147483647], ATSUAttributeValuePtr iValue[2147483647])
  475. ;
  476.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  477.         IMPORT_CFM_FUNCTION ATSUSetAttributes
  478.     ENDIF
  479.  
  480. ;
  481. ; extern OSStatus ATSUGetAttribute(ATSUStyle iStyle, ATSUAttributeTag iTag, ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize)
  482. ;
  483.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  484.         IMPORT_CFM_FUNCTION ATSUGetAttribute
  485.     ENDIF
  486.  
  487. ;
  488. ; extern OSStatus ATSUGetAllAttributes(ATSUStyle iStyle, ATSUAttributeInfo oAttributeInfoArray[2147483647], ItemCount iTagValuePairArraySize, ItemCount *oTagValuePairCount)
  489. ;
  490.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  491.         IMPORT_CFM_FUNCTION ATSUGetAllAttributes
  492.     ENDIF
  493.  
  494. ;
  495. ; extern OSStatus ATSUClearAttributes(ATSUStyle iStyle, ItemCount iTagCount, ATSUAttributeTag iTag[2147483647])
  496. ;
  497.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  498.         IMPORT_CFM_FUNCTION ATSUClearAttributes
  499.     ENDIF
  500.  
  501. ;     Font features    
  502. ;
  503. ; extern OSStatus ATSUSetFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount, ATSUFontFeatureType iType[2147483647], ATSUFontFeatureSelector iSelector[2147483647])
  504. ;
  505.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  506.         IMPORT_CFM_FUNCTION ATSUSetFontFeatures
  507.     ENDIF
  508.  
  509. ;
  510. ; extern OSStatus ATSUGetFontFeature(ATSUStyle iStyle, ItemCount iFeatureIndex, ATSUFontFeatureType *oFeatureType, ATSUFontFeatureSelector *oFeatureSelector)
  511. ;
  512.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  513.         IMPORT_CFM_FUNCTION ATSUGetFontFeature
  514.     ENDIF
  515.  
  516. ;
  517. ; extern OSStatus ATSUGetAllFontFeatures(ATSUStyle iStyle, ItemCount iMaximumFeatureCount, ATSUFontFeatureType *oFeatureType, ATSUFontFeatureSelector *oFeatureSelector, ItemCount *oActualFeatureCount)
  518. ;
  519.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  520.         IMPORT_CFM_FUNCTION ATSUGetAllFontFeatures
  521.     ENDIF
  522.  
  523. ;
  524. ; extern OSStatus ATSUClearFontFeatures(ATSUStyle iStyle, ItemCount iFeatureCount, ATSUFontFeatureType iType[2147483647], ATSUFontFeatureSelector iSelector[2147483647])
  525. ;
  526.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  527.         IMPORT_CFM_FUNCTION ATSUClearFontFeatures
  528.     ENDIF
  529.  
  530. ;     Font variations    
  531. ;
  532. ; extern OSStatus ATSUSetVariations(ATSUStyle iStyle, ItemCount iVariationCount, ATSUFontVariationAxis iAxis[2147483647], ATSUFontVariationValue iValue[2147483647])
  533. ;
  534.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  535.         IMPORT_CFM_FUNCTION ATSUSetVariations
  536.     ENDIF
  537.  
  538. ;
  539. ; extern OSStatus ATSUGetFontVariationValue(ATSUStyle iStyle, ATSUFontVariationAxis iATSUFontVariationAxis, ATSUFontVariationValue *oATSUFontVariationValue)
  540. ;
  541.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  542.         IMPORT_CFM_FUNCTION ATSUGetFontVariationValue
  543.     ENDIF
  544.  
  545. ;
  546. ; extern OSStatus ATSUGetAllFontVariations(ATSUStyle iStyle, ItemCount iVariationCount, ATSUFontVariationAxis oVariationAxes[2147483647], ATSUFontVariationValue oATSUFontVariationValues[2147483647], ItemCount *oActualVariationCount)
  547. ;
  548.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  549.         IMPORT_CFM_FUNCTION ATSUGetAllFontVariations
  550.     ENDIF
  551.  
  552. ;
  553. ; extern OSStatus ATSUClearFontVariations(ATSUStyle iStyle, ItemCount iAxisCount, ATSUFontVariationAxis iAxis[2147483647])
  554. ;
  555.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  556.         IMPORT_CFM_FUNCTION ATSUClearFontVariations
  557.     ENDIF
  558.  
  559. ;     Basic text-layout functions    
  560. ;
  561. ; extern OSStatus ATSUCreateTextLayout(ATSUTextLayout *oTextLayout)
  562. ;
  563.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  564.         IMPORT_CFM_FUNCTION ATSUCreateTextLayout
  565.     ENDIF
  566.  
  567. ;
  568. ; extern OSStatus ATSUCreateTextLayoutWithTextPtr(ConstUniCharArrayPtr iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength, ItemCount iNumberOfRuns, UniCharCount iRunLengths[2147483647], ATSUStyle iStyles[2147483647], ATSUTextLayout *oTextLayout)
  569. ;
  570.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  571.         IMPORT_CFM_FUNCTION ATSUCreateTextLayoutWithTextPtr
  572.     ENDIF
  573.  
  574. ;
  575. ; extern OSStatus ATSUCreateTextLayoutWithTextHandle(UniCharArrayHandle iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength, ItemCount iNumberOfRuns, UniCharCount iRunLengths[2147483647], ATSUStyle iStyles[2147483647], ATSUTextLayout *oTextLayout)
  576. ;
  577.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  578.         IMPORT_CFM_FUNCTION ATSUCreateTextLayoutWithTextHandle
  579.     ENDIF
  580.  
  581. ;
  582. ; extern OSStatus ATSUDisposeTextLayout(ATSUTextLayout iTextLayout)
  583. ;
  584.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  585.         IMPORT_CFM_FUNCTION ATSUDisposeTextLayout
  586.     ENDIF
  587.  
  588. ;
  589. ; extern OSStatus ATSUSetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 iRefCon)
  590. ;
  591.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  592.         IMPORT_CFM_FUNCTION ATSUSetTextLayoutRefCon
  593.     ENDIF
  594.  
  595. ;
  596. ; extern OSStatus ATSUGetTextLayoutRefCon(ATSUTextLayout iTextLayout, UInt32 *oRefCon)
  597. ;
  598.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  599.         IMPORT_CFM_FUNCTION ATSUGetTextLayoutRefCon
  600.     ENDIF
  601.  
  602. ;     Text location    
  603. ;
  604. ; extern OSStatus ATSUSetTextPointerLocation(ATSUTextLayout iTextLayout, ConstUniCharArrayPtr iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength)
  605. ;
  606.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  607.         IMPORT_CFM_FUNCTION ATSUSetTextPointerLocation
  608.     ENDIF
  609.  
  610. ;
  611. ; extern OSStatus ATSUSetTextHandleLocation(ATSUTextLayout iTextLayout, UniCharArrayHandle iText, UniCharArrayOffset iTextOffset, UniCharCount iTextLength, UniCharCount iTextTotalLength)
  612. ;
  613.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  614.         IMPORT_CFM_FUNCTION ATSUSetTextHandleLocation
  615.     ENDIF
  616.  
  617. ;
  618. ; extern OSStatus ATSUGetTextLocation(ATSUTextLayout iTextLayout, void **oText, Boolean *oTextIsStoredInHandle, UniCharArrayOffset *oOffset, UniCharCount *oTextLength, UniCharCount *oTextTotalLength)
  619. ;
  620.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  621.         IMPORT_CFM_FUNCTION ATSUGetTextLocation
  622.     ENDIF
  623.  
  624. ;     Text manipulation    
  625. ;
  626. ; extern OSStatus ATSUTextDeleted(ATSUTextLayout iTextLayout, UniCharArrayOffset iDeletedRangeStart, UniCharCount iDeletedRangeLength)
  627. ;
  628.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  629.         IMPORT_CFM_FUNCTION ATSUTextDeleted
  630.     ENDIF
  631.  
  632. ;
  633. ; extern OSStatus ATSUTextInserted(ATSUTextLayout iTextLayout, UniCharArrayOffset iInsertionLocation, UniCharCount iInsertionLength)
  634. ;
  635.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  636.         IMPORT_CFM_FUNCTION ATSUTextInserted
  637.     ENDIF
  638.  
  639. ;
  640. ; extern OSStatus ATSUTextMoved(ATSUTextLayout iTextLayout, ConstUniCharArrayPtr iNewLocation)
  641. ;
  642.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  643.         IMPORT_CFM_FUNCTION ATSUTextMoved
  644.     ENDIF
  645.  
  646. ;     Layout controls    
  647. ;
  648. ; extern OSStatus ATSUCopyLayoutControls(ATSUTextLayout iSource, ATSUTextLayout iDest)
  649. ;
  650.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  651.         IMPORT_CFM_FUNCTION ATSUCopyLayoutControls
  652.     ENDIF
  653.  
  654. ;
  655. ; extern OSStatus ATSUSetLayoutControls(ATSUTextLayout iLayout, ItemCount iAttributeCount, ATSUAttributeTag iTag[2147483647], ByteCount iValueSize[2147483647], ATSUAttributeValuePtr iValue[2147483647])
  656. ;
  657.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  658.         IMPORT_CFM_FUNCTION ATSUSetLayoutControls
  659.     ENDIF
  660.  
  661. ;
  662. ; extern OSStatus ATSUGetLayoutControl(ATSUTextLayout iLayout, ATSUAttributeTag iTag, ByteCount iExpectedValueSize, ATSUAttributeValuePtr oValue, ByteCount *oActualValueSize)
  663. ;
  664.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  665.         IMPORT_CFM_FUNCTION ATSUGetLayoutControl
  666.     ENDIF
  667.  
  668. ;
  669. ; extern OSStatus ATSUGetAllLayoutControls(ATSUTextLayout iLayout, ATSUAttributeInfo oAttributeInfoArray[2147483647], ItemCount iTagValuePairArraySize, ItemCount *oTagValuePairCount)
  670. ;
  671.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  672.         IMPORT_CFM_FUNCTION ATSUGetAllLayoutControls
  673.     ENDIF
  674.  
  675. ;
  676. ; extern OSStatus ATSUClearLayoutControls(ATSUTextLayout iLayout, ItemCount iTagCount, ATSUAttributeTag iTag[2147483647])
  677. ;
  678.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  679.         IMPORT_CFM_FUNCTION ATSUClearLayoutControls
  680.     ENDIF
  681.  
  682.  
  683.  
  684. ;     Style run processing    
  685. ;
  686. ; extern OSStatus ATSUSetRunStyle(ATSUTextLayout iTextLayout, ATSUStyle iStyle, UniCharArrayOffset iRunStart, UniCharCount iRunLength)
  687. ;
  688.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  689.         IMPORT_CFM_FUNCTION ATSUSetRunStyle
  690.     ENDIF
  691.  
  692. ;
  693. ; extern OSStatus ATSUGetRunStyle(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, ATSUStyle *oStyle, UniCharArrayOffset *oRunStart, UniCharCount *oRunLength)
  694. ;
  695.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  696.         IMPORT_CFM_FUNCTION ATSUGetRunStyle
  697.     ENDIF
  698.  
  699. ;
  700. ; extern OSStatus ATSUGetContinuousAttributes(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, UniCharCount iLength, ATSUStyle oStyle)
  701. ;
  702.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  703.         IMPORT_CFM_FUNCTION ATSUGetContinuousAttributes
  704.     ENDIF
  705.  
  706. ;     Drawing and measuring    
  707. ;
  708. ; extern OSStatus ATSUDrawText(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineOffset, UniCharCount iLineLength, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY)
  709. ;
  710.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  711.         IMPORT_CFM_FUNCTION ATSUDrawText
  712.     ENDIF
  713.  
  714. ;
  715. ; extern OSStatus ATSUMeasureText(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, UniCharCount iLineLength, ATSUTextMeasurement *oTextBefore, ATSUTextMeasurement *oTextAfter, ATSUTextMeasurement *oAscent, ATSUTextMeasurement *oDescent)
  716. ;
  717.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  718.         IMPORT_CFM_FUNCTION ATSUMeasureText
  719.     ENDIF
  720.  
  721. ;
  722. ; extern OSStatus ATSUMeasureTextImage(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineOffset, UniCharCount iLineLength, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY, Rect *oTextImageRect)
  723. ;
  724.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  725.         IMPORT_CFM_FUNCTION ATSUMeasureTextImage
  726.     ENDIF
  727.  
  728. ;     Highlighting    
  729. ;
  730. ; extern OSStatus ATSUHighlightText(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength)
  731. ;
  732.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  733.         IMPORT_CFM_FUNCTION ATSUHighlightText
  734.     ENDIF
  735.  
  736. ;
  737. ; extern OSStatus ATSUUnhighlightText(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength)
  738. ;
  739.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  740.         IMPORT_CFM_FUNCTION ATSUUnhighlightText
  741.     ENDIF
  742.  
  743. ;
  744. ; extern OSStatus ATSUGetTextHighlight(ATSUTextLayout iTextLayout, ATSUTextMeasurement iTextBasePointX, ATSUTextMeasurement iTextBasePointY, UniCharArrayOffset iHighlightStart, UniCharCount iHighlightLength, RgnHandle oHighlightRegion)
  745. ;
  746.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  747.         IMPORT_CFM_FUNCTION ATSUGetTextHighlight
  748.     ENDIF
  749.  
  750. ;     Hit-testing    
  751. ;
  752. ; extern OSStatus ATSUPositionToOffset(ATSUTextLayout iTextLayout, ATSUTextMeasurement iLocationX, ATSUTextMeasurement iLocationY, UniCharArrayOffset *ioPrimaryOffset, Boolean *oIsLeading, UniCharArrayOffset *oSecondaryOffset)
  753. ;
  754.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  755.         IMPORT_CFM_FUNCTION ATSUPositionToOffset
  756.     ENDIF
  757.  
  758. ;
  759. ; extern OSStatus ATSUOffsetToPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOffset, Boolean iIsLeading, ATSUCaret *oMainCaret, ATSUCaret *oSecondCaret, Boolean *oCaretIsSplit)
  760. ;
  761.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  762.         IMPORT_CFM_FUNCTION ATSUOffsetToPosition
  763.     ENDIF
  764.  
  765. ;     Cursor movement    
  766. ;
  767. ; extern OSStatus ATSUNextCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
  768. ;
  769.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  770.         IMPORT_CFM_FUNCTION ATSUNextCursorPosition
  771.     ENDIF
  772.  
  773. ;
  774. ; extern OSStatus ATSUPreviousCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
  775. ;
  776.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  777.         IMPORT_CFM_FUNCTION ATSUPreviousCursorPosition
  778.     ENDIF
  779.  
  780. ;
  781. ; extern OSStatus ATSURightwardCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
  782. ;
  783.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  784.         IMPORT_CFM_FUNCTION ATSURightwardCursorPosition
  785.     ENDIF
  786.  
  787. ;
  788. ; extern OSStatus ATSULeftwardCursorPosition(ATSUTextLayout iTextLayout, UniCharArrayOffset iOldOffset, ATSUCursorMovementType iMovementType, UniCharArrayOffset *oNewOffset)
  789. ;
  790.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  791.         IMPORT_CFM_FUNCTION ATSULeftwardCursorPosition
  792.     ENDIF
  793.  
  794. ;     Line breaking    
  795. ;
  796. ; extern OSStatus ATSUBreakLine(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineStart, ATSUTextMeasurement iLineWidth, Boolean iUseAsSoftLineBreak, UniCharArrayOffset *oLineBreak)
  797. ;
  798.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  799.         IMPORT_CFM_FUNCTION ATSUBreakLine
  800.     ENDIF
  801.  
  802. ;
  803. ; extern OSStatus ATSUSetSoftLineBreak(ATSUTextLayout iTextLayout, UniCharArrayOffset iLineBreak)
  804. ;
  805.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  806.         IMPORT_CFM_FUNCTION ATSUSetSoftLineBreak
  807.     ENDIF
  808.  
  809. ;
  810. ; extern OSStatus ATSUGetSoftLineBreaks(ATSUTextLayout iTextLayout, UniCharArrayOffset iRangeStart, UniCharCount iRangeLength, ItemCount iMaximumBreaks, UniCharArrayOffset oBreaks[2147483647], ItemCount *oBreakCount)
  811. ;
  812.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  813.         IMPORT_CFM_FUNCTION ATSUGetSoftLineBreaks
  814.     ENDIF
  815.  
  816. ;
  817. ; extern OSStatus ATSUClearSoftLineBreaks(ATSUTextLayout iTextLayout, UniCharArrayOffset iRangeStart, UniCharCount iRangeLength)
  818. ;
  819.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  820.         IMPORT_CFM_FUNCTION ATSUClearSoftLineBreaks
  821.     ENDIF
  822.  
  823. ;     Idle processing    
  824. ;
  825. ; extern OSStatus ATSUIdle(ATSUTextLayout iTextLayout)
  826. ;
  827.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  828.         IMPORT_CFM_FUNCTION ATSUIdle
  829.     ENDIF
  830.  
  831. ;     Font matching    
  832. ;
  833. ; extern OSStatus ATSUMatchFontsToText(ATSUTextLayout iTextLayout, UniCharArrayOffset iTextStart, UniCharCount iTextLength, ATSUFontID *oFont, UniCharArrayOffset *oChangedOffset, UniCharCount *oChangedLength)
  834. ;
  835.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  836.         IMPORT_CFM_FUNCTION ATSUMatchFontsToText
  837.     ENDIF
  838.  
  839. ;
  840. ; extern OSStatus ATSUSetTransientFontMatching(ATSUTextLayout iTextLayout, Boolean iTransientFontMatching)
  841. ;
  842.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  843.         IMPORT_CFM_FUNCTION ATSUSetTransientFontMatching
  844.     ENDIF
  845.  
  846. ;
  847. ; extern OSStatus ATSUGetTransientFontMatching(ATSUTextLayout iTextLayout, Boolean *oTransientFontMatching)
  848. ;
  849.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  850.         IMPORT_CFM_FUNCTION ATSUGetTransientFontMatching
  851.     ENDIF
  852.  
  853. ;     Font ID's    
  854. ;
  855. ; extern OSStatus ATSUFontCount(ItemCount *oFontCount)
  856. ;
  857.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  858.         IMPORT_CFM_FUNCTION ATSUFontCount
  859.     ENDIF
  860.  
  861. ;
  862. ; extern OSStatus ATSUGetFontIDs(ATSUFontID oFontIDs[2147483647], ItemCount iArraySize, ItemCount *oFontCount)
  863. ;
  864.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  865.         IMPORT_CFM_FUNCTION ATSUGetFontIDs
  866.     ENDIF
  867.  
  868. ;
  869. ; extern OSStatus ATSUFONDtoFontID(short iFONDNumber, Style iFONDStyle, ATSUFontID *oFontID)
  870. ;
  871.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  872.         IMPORT_CFM_FUNCTION ATSUFONDtoFontID
  873.     ENDIF
  874.  
  875. ;
  876. ; extern OSStatus ATSUFontIDtoFOND(ATSUFontID iFontID, short *oFONDNumber, Style *oFONDStyle)
  877. ;
  878.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  879.         IMPORT_CFM_FUNCTION ATSUFontIDtoFOND
  880.     ENDIF
  881.  
  882. ;     Font names    
  883. ;
  884. ; extern OSStatus ATSUCountFontNames(ATSUFontID iFontID, ItemCount *oFontNameCount)
  885. ;
  886.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  887.         IMPORT_CFM_FUNCTION ATSUCountFontNames
  888.     ENDIF
  889.  
  890. ;
  891. ; extern OSStatus ATSUGetIndFontName(ATSUFontID iFontID, ItemCount iFontNameIndex, ByteCount iMaximumNameLength, Ptr oName, ByteCount *oActualNameLength, FontNameCode *oFontNameCode, FontPlatformCode *oFontNamePlatform, FontScriptCode *oFontNameScript, FontLanguageCode *oFontNameLenguage)
  892. ;
  893.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  894.         IMPORT_CFM_FUNCTION ATSUGetIndFontName
  895.     ENDIF
  896.  
  897. ;
  898. ; extern OSStatus ATSUFindFontName(ATSUFontID iFontID, FontNameCode iFontNameCode, FontPlatformCode iFontNamePlatform, FontScriptCode iFontNameScript, FontLanguageCode iFontNameLanguage, ByteCount iMaximumNameLength, Ptr oName, ByteCount *oActualNameLength, ItemCount *oFontNameIndex)
  899. ;
  900.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  901.         IMPORT_CFM_FUNCTION ATSUFindFontName
  902.     ENDIF
  903.  
  904. ;
  905. ; extern OSStatus ATSUFindFontFromName(Ptr iName, ByteCount iNameLength, FontNameCode iFontNameCode, FontPlatformCode iFontNamePlatform, FontScriptCode iFontNameScript, FontLanguageCode iFontNameLanguage, ATSUFontID *oFontID)
  906. ;
  907.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  908.         IMPORT_CFM_FUNCTION ATSUFindFontFromName
  909.     ENDIF
  910.  
  911. ;     Font features    
  912. ;
  913. ; extern OSStatus ATSUCountFontFeatureTypes(ATSUFontID iFont, ItemCount *oTypeCount)
  914. ;
  915.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  916.         IMPORT_CFM_FUNCTION ATSUCountFontFeatureTypes
  917.     ENDIF
  918.  
  919. ;
  920. ; extern OSStatus ATSUCountFontFeatureSelectors(ATSUFontID iFont, ATSUFontFeatureType iType, ItemCount *oSelectorCount)
  921. ;
  922.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  923.         IMPORT_CFM_FUNCTION ATSUCountFontFeatureSelectors
  924.     ENDIF
  925.  
  926. ;
  927. ; extern OSStatus ATSUGetFontFeatureTypes(ATSUFontID iFont, ItemCount iMaximumTypes, ATSUFontFeatureType oTypes[2147483647], ItemCount *oActualTypeCount)
  928. ;
  929.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  930.         IMPORT_CFM_FUNCTION ATSUGetFontFeatureTypes
  931.     ENDIF
  932.  
  933. ;
  934. ; extern OSStatus ATSUGetFontFeatureSelectors(ATSUFontID iFont, ATSUFontFeatureType iType, ItemCount iMaximumSelectors, ATSUFontFeatureSelector oSelectors[2147483647], Boolean oSelectorIsOnByDefault[2147483647], ItemCount *oActualSelectorCount, Boolean *oIsMutuallyExclusive)
  935. ;
  936.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  937.         IMPORT_CFM_FUNCTION ATSUGetFontFeatureSelectors
  938.     ENDIF
  939.  
  940. ;
  941. ; extern OSStatus ATSUGetFontFeatureNameCode(ATSUFontID iFont, ATSUFontFeatureType iType, ATSUFontFeatureSelector iSelector, FontNameCode *oNameCode)
  942. ;
  943.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  944.         IMPORT_CFM_FUNCTION ATSUGetFontFeatureNameCode
  945.     ENDIF
  946.  
  947. ;     Font variations    
  948. ;
  949. ; extern OSStatus ATSUCountFontVariations(ATSUFontID iFont, ItemCount *oVariationCount)
  950. ;
  951.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  952.         IMPORT_CFM_FUNCTION ATSUCountFontVariations
  953.     ENDIF
  954.  
  955. ;
  956. ; extern OSStatus ATSUGetIndFontVariation(ATSUFontID iFont, ItemCount iVariationIndex, ATSUFontVariationAxis *oATSUFontVariationAxis, ATSUFontVariationValue *oMinimumValue, ATSUFontVariationValue *oMaximumValue, ATSUFontVariationValue *oDefaultValue)
  957. ;
  958.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  959.         IMPORT_CFM_FUNCTION ATSUGetIndFontVariation
  960.     ENDIF
  961.  
  962. ;
  963. ; extern OSStatus ATSUGetFontVariationNameCode(ATSUFontID iFont, ATSUFontVariationAxis iAxis, FontNameCode *oNameCode)
  964. ;
  965.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  966.         IMPORT_CFM_FUNCTION ATSUGetFontVariationNameCode
  967.     ENDIF
  968.  
  969.  
  970. ;     Font Instances    
  971. ;
  972. ; extern OSStatus ATSUCountFontInstances(ATSUFontID iFont, ItemCount *oInstances)
  973. ;
  974.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  975.         IMPORT_CFM_FUNCTION ATSUCountFontInstances
  976.     ENDIF
  977.  
  978. ;
  979. ; extern OSStatus ATSUGetFontInstance(ATSUFontID iFont, ItemCount iFontInstanceIndex, ItemCount iMaximumVariations, ATSUFontVariationAxis oAxes[2147483647], ATSUFontVariationValue oValues[2147483647], ItemCount *oActualVariationCount)
  980. ;
  981.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  982.         IMPORT_CFM_FUNCTION ATSUGetFontInstance
  983.     ENDIF
  984.  
  985. ;
  986. ; extern OSStatus ATSUGetFontInstanceNameCode(ATSUFontID iFont, ItemCount iInstanceIndex, FontNameCode *oNameCode)
  987. ;
  988.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  989.         IMPORT_CFM_FUNCTION ATSUGetFontInstanceNameCode
  990.     ENDIF
  991.  
  992.  
  993.     ENDIF ; __ATSUNICODE__ 
  994.  
  995.